<template>
  <el-dialog title="异常处理" :close-on-click-modal="false" class="JNPF-dialog JNPF-dialog_center" lock-scroll append-to-body v-bind="$attrs" width="600px" :modal-append-to-body="false" v-on="$listeners" @open="onOpen">
    <el-form label-width="100px" ref="dataForm" :model="dataForm">
      <el-form-item :label="item.nodeName" :prop="'nodeList.' + i + '.value'" v-for="(item,i) in dataForm.nodeList" :key="i" :rules="item.rules">
        <JnpfUserSelect v-model="item.value" multiple placeholder="请选择异常处理人员" />
      </el-form-item>
    </el-form>
    <span slot="footer" class="dialog-footer">
      <el-button @click="closeDialog">{{$t('common.cancelButton')}}</el-button>
      <el-button type="primary" @click="submit()">{{$t('common.confirmButton')}}
      </el-button>
    </span>
  </el-dialog>
</template>

<script>
  export default {
    props: ['nodeList'],
    data() {
      return {
        dataForm: {
          nodeList: []
        }
      }
    },
    methods: {
      onOpen() {
        this.dataForm.nodeList = this.nodeList.map(o => ({
          ...o,
          value: [],
          rules: [{ required: true, message: `异常处理人员不能为空`, trigger: 'click' }]
        }))
        this.$nextTick(() => {
          this.$refs['dataForm'].resetFields()
        })
      },
      submit() {
        this.$refs['dataForm'].validate((valid) => {
          if (valid) {
            let nodeList = {}
            for (let i = 0; i < this.dataForm.nodeList.length; i++) {
              nodeList[this.dataForm.nodeList[i].nodeId] = this.dataForm.nodeList[i].value
            }
            this.$emit('submit', nodeList)
          }
        })
      },
      closeDialog() {
        this.$emit('update:visible', false)
      },
    }
  }
</script>
